package com.swanclouds.redfish.chassis.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.Map;

public class PowerControl {

    /**电源控制属性的访问路径**/
    @JsonProperty("@odata.id")
    private String dataId;

    /**设备的当前功率**/
    @JsonProperty("PowerConsumedWatts")
    private String powerConsumedWatts;

    /**功率封顶参数，包括：
     ● LimitInWatts：封顶功
     率
     ● LimitException：达到
     封顶功率后的动作，可
     以是"HardPowerOff"或"NoAction"**/
    @JsonProperty("PowerLimit")
    private Map<String, String> powerLimit;

    /**设备功率参数，包括：
     ● MinConsumedWatts：
     最小功率
     ● MaxConsumedWatts
     ：最大功率
     ● AverageConsumedWa
     tts：平均功率**/
    @JsonProperty("PowerMetrics")
    private Map<String, String> powerMetrics;

    /**电源控制属性的ID，为其在电源资源中的唯一标识。**/
    @JsonProperty("MemberId")
    private String memberId;

    /**电源控制属性的名称**/
    @JsonProperty("Name")
    private String name;

    /**电源控制资源自定义信息**/
    @JsonProperty("Oem")
    private Map<String, Object> oem;

    public String getDataId() {
        return dataId;
    }

    public String getPowerConsumedWatts() {
        return powerConsumedWatts;
    }

    public Map<String, String> getPowerLimit() {
        return powerLimit;
    }

    public Map<String, String> getPowerMetrics() {
        return powerMetrics;
    }

    public String getMemberId() {
        return memberId;
    }

    public String getName() {
        return name;
    }

    public Map<String, Object> getOem() {
        return oem;
    }

    @Override
    public String toString() {
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            return objectMapper.writeValueAsString(this);
        } catch (JsonProcessingException e) {
        }
        return "PowerControl{" +
                "@odata.id='" + dataId + '\'' +
                "Name='" + name + '\'' +
                "MemberId='" + memberId + '\'' +
                "PowerLimit='" + powerLimit + '\'' +
                "PowerConsumedWatts='" + powerConsumedWatts + '\'' +
                "PowerMetrics='" + powerMetrics + '\'' +
                "Oem='" + oem + '\'' +
                '}';
    }

}
